home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / gnu / gnulib / sipp / include / suit.h < prev   
Encoding:
C/C++ Source or Header  |  1993-08-11  |  56.8 KB  |  1,317 lines

  1. /* (C) 1990 Copyright Rector and Visitors of the University of Virginia */
  2.  
  3. #ifndef BASESUIT_INCLUDED
  4. #define BASESUIT_INCLUDED 1
  5.  
  6.  
  7. #define SUIT_VERSION  2
  8. #define SUIT_REVISION 3
  9.  
  10.  
  11.  
  12. /* ------------------------------------------------------------------------------------------ */
  13.  
  14.  
  15. #ifndef AVAILABLE_ARCHITECTURES
  16. #define AVAILABLE_ARCHITECTURES
  17.  
  18. #ifdef THINK_C
  19. #    define MACINTOSH
  20. #    ifndef __STDC__
  21. #     define __STDC__    /* the compiler is ANSI compatible but doesn't define this */
  22. #    endif
  23. #elif defined(__MSDOS__)
  24. #    ifdef __GNUC__        /* 32 bit DJGPP DOS version w/ GRX library */
  25. #     undef     unix        /* DJGPP has these defined - clean up */
  26. #     undef     __unix
  27. #     undef     __unix__
  28. #     define  GRX        1    /* GRX version */
  29. #     define  GRX32        1    /* and 32 bits */
  30. #    endif
  31. #    ifdef __TURBOC__
  32. #     ifdef     DONT_USE_BGI
  33. #         define GRX        1    /* GRX graphics version */
  34. #         define GRX16   1    /* and 16 bits */
  35. #     else            /* for BGI-based srgp */
  36. #         define IBM_PC
  37. #     endif
  38. #    endif
  39. #elif _AIX
  40. #    define RS6000
  41. #elif sgi
  42. #    define SGI_X /* one day we'll there'll also be SGI_GL */
  43. #elif ultrix
  44. #    define DEC
  45. #elif __unix__
  46. #    define SUN /* either sparc or sun 3 */
  47. #endif
  48.  
  49. #endif /* AVAILABLE_ARCHITECTURES */
  50.  
  51.  
  52. #if defined(RS6000) || defined(SGI_X) || defined(SUN) || defined(DEC)
  53. #    define X_WINDOWS
  54. #endif
  55.  
  56.  
  57.  
  58. #if defined(__STDC__) || defined(__cplusplus) || defined(IBM_PC)
  59. #    define ANSI_COMPILER  1
  60. #else
  61. #    define ANSI_COMPILER  0
  62. #endif
  63.  
  64. #if ANSI_COMPILER
  65. #define CARGS(X)  X
  66. #else
  67. #define CARGS(X)  ()
  68. #endif
  69.  
  70.  
  71.  
  72. #define INTERACTIVE_WIDGETS
  73.  
  74.  
  75. #ifndef SUIT_PROTOTYPE
  76. #    ifdef __cplusplus
  77. #     define SUIT_PROTOTYPE extern "C"
  78. #     define time_t long int
  79. #    else
  80. #     define SUIT_PROTOTYPE
  81. #    endif
  82. #endif
  83.  
  84.  
  85. /* ------------------------------------------------------------------------------------------ */
  86.  
  87. #ifndef _Windows
  88.      /* For the MS Windows version, these are global variables defined in
  89.     initial.c rather than consant strings.  This is to consert static memory
  90.     space. */
  91. #define ACTIVE_DISPLAY            "active display"
  92. #define ALTERED                "altered"
  93. #define ANIMATED            "animated"
  94. #define ANY_KEYSTROKE_TRIGGERS        "any keystroke triggers"
  95. #define ARROWHEAD_ANGLE            "arrowhead angle"
  96. #define ARROWHEAD_LENGTH        "arrowhead length"
  97. #define AXIS_COLOR            "axis color"
  98. #define BACKGROUND_COLOR        "background color"
  99. #define BACKWARD_CHAR_KEY        "backward char key"
  100. #define BALL_SIZE            "ball size"
  101. #define BALL_X                "ball x"
  102. #define BALL_Y                "ball y"
  103. #define BEGINNING_OF_LINE_KEY        "beginning of line key"
  104. #define BEGINNING_OF_TEXT_KEY        "beginning of text key"
  105. #define BODY_COLOR            "body color"
  106. #define BORDER_COLOR            "border color"
  107. #define BORDER_RAISED            "border raised"
  108. #define BORDER_TYPE            "border type"
  109. #define BORDER_WIDTH            "border width"
  110. #define BUTTON_BACKGROUND_COLOR        "button background color"
  111. #define BUTTON_FOREGROUND_COLOR        "button foreground color"
  112. #define BUTTON_PRESSED            "button pressed"
  113. #define CAB_COLOR            "cab color"
  114. #define CACHE_USING_CANVAS        "cache using canvas"
  115. #define CALLBACK_FUNCTION        "callback function"
  116. #define CAN_BE_OPENED            "can be opened"
  117. #define CAN_BE_REDIRECTED        "can be redirected"
  118. #define CAN_COLOR            "can color"
  119. #define CHAINED_FROM_PROPERTY_TYPE    "chained from property type"
  120. #define CHAINED_TO_OBJECT        "chained to object"
  121. #define CHAINED_TO_PROPERTY_TYPE    "chained to property type"
  122. #define CHAINED_TO_PROPERTY        "chained to property"
  123. #define CHIP_BORDER            "chip border"
  124. #define CLIP_TO_VIEWPORT        "clip to viewport"
  125. #define CONNECTION_CALLBACK_FUNCTION    "connection callback function"
  126. #define CURRENT_DIRECTORY        "current directory"
  127. #define CURRENT_FILE            "current file"
  128. #define CURRENT_ROW            "current row"
  129. #define CURRENT_VALUE            "current value"
  130. #define CURSOR_COLOR            "cursor color"
  131. #define CURSOR_INDEX            "cursor index"
  132. #define CURSOR_STYLE            "cursor style"
  133. #define CUT_BUFFER            "cut buffer"
  134. #define DARKEN_BACKGROUND        "darken background"
  135. #define DEFAULT_OBJECT_HEIGHT        "default object height"
  136. #define DEFAULT_OBJECT_WIDTH        "default object width"
  137. #define DELETE_CHAR_KEY            "delete char key"
  138. #define DELETE_ENTIRE_LINE_KEY        "delete entire line key"
  139. #define DIRECTION            "direction"
  140. #define DISABLED_COLOR            "disabled color"
  141. #define DISABLED            "disabled"
  142. #define DONE_CALLBACK_FUNCTION        "done callback function"
  143. #define DONE_EDITING_KEY        "done editing key"
  144. #define DRAW_AXIS_LINES            "draw axis lines"
  145. #define DRAW_BORDER_ON_INSIDE        "draw border on inside"
  146. #define DRAW_FILLED            "draw filled"
  147. #define DYNARRAY_DEBUG            "dynarray debug"
  148. #define END_OF_LINE_KEY            "end of line key"
  149. #define END_OF_TEXT_KEY            "end of text key"
  150. #define EXPAND_NAME            "expand name"
  151. #define FILE_FILTER            "file filter"
  152. #define FILL_TILE            "fill tile"
  153. #define FILLED                "filled"
  154. #define FINISHED            "finished"
  155. #define FONT                "font"
  156. #define FOREGROUND_COLOR        "foreground color"
  157. #define FORWARD_CHAR_KEY        "forward char key"
  158. #define FRAME_NAME            "frame name"
  159. #define FROM                "from"
  160. #define GOT_A_MOUSE_DOWN        "got a mouse down"
  161. #define GRAB_RETURN_KEY            "grab return key"
  162. #define GRANULARITY            "granularity"
  163. #define HAS_ARROW_HEAD            "has arrow head"
  164. #define HAS_ARROW            "has arrow"
  165. #define HAS_BACKGROUND            "has background"
  166. #define HAS_BORDER            "has border"
  167. #define HAS_RIM                "has rim"
  168. #define HAS_SECOND_HAND            "has second hand"
  169. #define HAS_TICK_MARKS            "has tick marks"
  170. #define HEAD_X                "head x"
  171. #define HEAD_Y                "head y"
  172. #define HELP_MESSAGE            "help message"
  173. #define HIGHLIGHT_BLOCK            "highlight block"
  174. #define HIGHLIGHT_COLOR            "highlight color"
  175. #define HOTKEY                "hotkey"
  176. #define INCREASE_CLOCKWISE        "increase clockwise"
  177. #define INPUT_SEQUENCE            "input sequence"
  178. #define INSIDE_COLOR            "inside color"
  179. #define INTERACTIVELY_CREATED        "interactively created"
  180. #define INTERMEDIATE_FEEDBACK        "intermediate feedback"
  181. #define JUSTIFICATION            "justification"
  182. #define KILL_LINE_KEY            "kill line key"
  183. #define LABEL_NAME            "label name"
  184. #define LABEL                "label"
  185. #define LAST_DRAWN_CURRENT_VALUE    "last drawn current value"
  186. #define LINE_SPACING            "line spacing"
  187. #define LINE_WIDTH            "line width"
  188. #define LIST                "list"
  189. #define MARGIN                "margin"
  190. #define MARK_COLOR            "mark color"
  191. #define MARK_END_INDEX            "mark end index"
  192. #define MARK_INDEX            "mark index"
  193. #define MAXIMIZED            "maximized"
  194. #define MAXIMUM_VALUE            "maximum value"
  195. #define MILITARY_TIME            "military time"
  196. #define MINIMIZED            "minimized"
  197. #define MINIMUM_VALUE            "minimum value"
  198. #define MINIMUM_VIEWPORT        "minimum viewport"
  199. #define MOVE_HEAD            "move head"
  200. #define NEEDLE_COLOR            "needle color"
  201. #define NEWLINE_KEY            "newline key"
  202. #define NEXT_LINE_KEY            "next line key"
  203. #define NUMBER_OF_CHILDREN        "number of children"
  204. #define NUMBER_OF_CONNECTIONS        "number of connections"
  205. #define NUMBER_OF_LINES            "number of lines"
  206. #define NUMBER_OF_SIDES            "number of sides"
  207. #define OPEN_LINE_KEY            "open line key"
  208. #define OUTLINE_COLOR            "outline color"
  209. #define PERCENT_FULL            "percent full"
  210. #define PIXELS_PER_SECOND        "pixels per second"
  211. #define PREVIOUS_TIME            "previous time"
  212. #define PREVIOUS_VALUE            "previous value"
  213. #define PREVIOUS_LINE_KEY        "previous line key"
  214. #define RAISED                "raised"
  215. #define READ_ONLY            "read only"
  216. #define REDUCE_NAME            "reduce name"
  217. #define REPAINT_KEY            "repaint key"
  218. #define RESTORED            "restored"
  219. #define ROUNDING_FACTOR            "rounding factor"
  220. #define SCREEN_DEPTH            "screen depth"
  221. #define SCREEN_HEIGHT            "screen height"
  222. #define SCREEN_WIDTH            "screen width"
  223. #define SCROLL_POSITION            "scroll position"
  224. #define SCROLL_DOWN_KEY            "scroll down key"
  225. #define SCROLL_UP_KEY            "scroll up key"
  226. #define SCROLLER            "scroller"
  227. #define SET_MARK_KEY            "set mark key"
  228. #define SHADOW_THICKNESS        "shadow thickness"
  229. #define SHOW_TEMPORARY_PROPERTIES    "show temporary properties"
  230. #define SHRINK_TO_FIT            "shrink to fit"
  231. #define SLIDING                "sliding"
  232. #define SPACING_GAP            "spacing gap"
  233. #define SPRINGINESS            "springiness"
  234. #define START_ANGLE            "start angle"
  235. #define STARTING_LINE            "starting line"
  236. #define SUIT_PROPERTY_EDITOR        "SUIT property editor"
  237. #define SUIT_SYSTEM_FONT        "SUIT system font"
  238. #define TAB_KEY                "tab key"
  239. #define TAB_LENGTH            "tab length"
  240. #define TAIL_X                "tail x"
  241. #define TAIL_Y                "tail y"
  242. #define TEXT_COLOR            "text color"
  243. #define TEXT_SPACING            "text spacing"
  244. #define TILE_COLOR            "tile color"
  245. #define TILE_EXTENTS            "tile extents"
  246. #define TO                "to"
  247. #define VALID_COLORS            "valid colors"
  248. #define VALIDATION_FUNCTION        "validation function"
  249. #define VECTOR_X            "vector X"
  250. #define VECTOR_Y            "vector Y"
  251. #define VERTICAL_MENU_VIEWPORT        "vertical menu viewport"
  252. #define VIEWPORT            "viewport"
  253. #define VISIBLE_WITHIN_PROPERTY_EDITOR  "visible within property editor"
  254. #define VISIBLE                "visible"
  255. #define WALLPAPER            "wallpaper"
  256. #define WALLPAPER_FUNCTION        "wallpaper function"
  257. #define WHEEL_COLOR            "wheel color"
  258. #define WINDOW                "window"
  259. #define WIPE_BLOCK_KEY            "wipe block key"
  260. #define YANK_KEY            "yank key"
  261.  
  262. #else
  263. /* Windows Hack! */
  264. /* These variable are declared in initial.c */
  265. #ifndef WINDECLARED
  266. extern char *ACTIVE_DISPLAY;
  267. extern char *ALTERED;
  268. extern char *ANIMATED;
  269. extern char *ANY_KEYSTROKE_TRIGGERS;
  270. extern char *ARROWHEAD_ANGLE;
  271. extern char *ARROWHEAD_LENGTH;
  272. extern char *AXIS_COLOR;
  273. extern char *BACKGROUND_COLOR;
  274. extern char *BACKWARD_CHAR_KEY;
  275. extern char *BALL_SIZE;
  276. extern char *BALL_X;
  277. extern char *BALL_Y;
  278. extern char *BEGINNING_OF_LINE_KEY;
  279. extern char *BEGINNING_OF_TEXT_KEY;
  280. extern char *BODY_COLOR;
  281. extern char *BORDER_COLOR;
  282. extern char *BORDER_RAISED;
  283. extern char *BORDER_TYPE;
  284. extern char *BORDER_WIDTH;
  285. extern char *BUTTON_BACKGROUND_COLOR;
  286. extern char *BUTTON_FOREGROUND_COLOR;
  287. extern char *BUTTON_PRESSED;
  288. extern char *CAB_COLOR;
  289. extern char *CACHE_USING_CANVAS;
  290. extern char *CALLBACK_FUNCTION;
  291. extern char *CAN_BE_OPENED;
  292. extern char *CAN_BE_REDIRECTED;
  293. extern char *CAN_COLOR;
  294. extern char *CHAINED_FROM_PROPERTY_TYPE;
  295. extern char *CHAINED_TO_OBJECT;
  296. extern char *CHAINED_TO_PROPERTY_TYPE;
  297. extern char *CHAINED_TO_PROPERTY;
  298. extern char *CHIP_BORDER;
  299. extern char *CLIP_TO_VIEWPORT;
  300. extern char *CONNECTION_CALLBACK_FUNCTION;
  301. extern char *CURRENT_DIRECTORY;
  302. extern char *CURRENT_FILE;
  303. extern char *CURRENT_ROW;
  304. extern char *CURRENT_VALUE;
  305. extern char *CURSOR_COLOR;
  306. extern char *CURSOR_INDEX;
  307. extern char *CURSOR_STYLE;
  308. extern char *CUT_BUFFER;
  309. extern char *DARKEN_BACKGROUND;
  310. extern char *DEFAULT_OBJECT_HEIGHT;
  311. extern char *DEFAULT_OBJECT_WIDTH;
  312. extern char *DELETE_CHAR_KEY;
  313. extern char *DELETE_ENTIRE_LINE_KEY;
  314. extern char *DIRECTION;
  315. extern char *DISABLED_COLOR;
  316. extern char *DISABLED;
  317. extern char *DONE_CALLBACK_FUNCTION;
  318. extern char *DONE_EDITING_KEY;
  319. extern char *DRAW_AXIS_LINES;
  320. extern char *DRAW_BORDER_ON_INSIDE;
  321. extern char *DRAW_FILLED;
  322. extern char *DYNARRAY_DEBUG;
  323. extern char *END_OF_LINE_KEY;
  324. extern char *END_OF_TEXT_KEY;
  325. extern char *EXPAND_NAME;
  326. extern char *FILE_FILTER;
  327. extern char *FILL_TILE;
  328. extern char *FILLED;
  329. extern char *FINISHED;
  330. extern char *FONT;
  331. extern char *FOREGROUND_COLOR;
  332. extern char *FORWARD_CHAR_KEY;
  333. extern char *FRAME_NAME;
  334. extern char *FROM;
  335. extern char *GOT_A_MOUSE_DOWN;
  336. extern char *GRAB_RETURN_KEY;
  337. extern char *GRANULARITY;
  338. extern char *HAS_ARROW_HEAD;
  339. extern char *HAS_ARROW;
  340. extern char *HAS_BACKGROUND;
  341. extern char *HAS_BORDER;
  342. extern char *HAS_RIM;
  343. extern char *HAS_SECOND_HAND;
  344. extern char *HAS_TICK_MARKS;
  345. extern char *HEAD_X;
  346. extern char *HEAD_Y;
  347. extern char *HELP_MESSAGE;
  348. extern char *HIGHLIGHT_BLOCK;
  349. extern char *HIGHLIGHT_COLOR;
  350. extern char *HOTKEY;
  351. extern char *INCREASE_CLOCKWISE;
  352. extern char *INPUT_SEQUENCE;
  353. extern char *INSIDE_COLOR;
  354. extern char *INTERACTIVELY_CREATED;
  355. extern char *INTERMEDIATE_FEEDBACK;
  356. extern char *JUSTIFICATION;
  357. extern char *KILL_LINE_KEY;
  358. extern char *LABEL_NAME;
  359. extern char *LABEL;
  360. extern char *LAST_DRAWN_CURRENT_VALUE;
  361. extern char *LINE_SPACING;
  362. extern char *LINE_WIDTH;
  363. extern char *LIST;
  364. extern char *MARGIN;
  365. extern char *MARK_COLOR;
  366. extern char *MARK_END_INDEX;
  367. extern char *MARK_INDEX;
  368. extern char *MAXIMIZED;
  369. extern char *MAXIMUM_VALUE;
  370. extern char *MILITARY_TIME;
  371. extern char *MINIMIZED;
  372. extern char *MINIMUM_VALUE;
  373. extern char *MINIMUM_VIEWPORT;
  374. extern char *MOVE_HEAD;
  375. extern char *NEEDLE_COLOR;
  376. extern char *NEWLINE_KEY;
  377. extern char *NEXT_LINE_KEY;
  378. extern char *NUMBER_OF_CHILDREN;
  379. extern char *NUMBER_OF_CONNECTIONS;
  380. extern char *NUMBER_OF_LINES;
  381. extern char *NUMBER_OF_SIDES;
  382. extern char *OPEN_LINE_KEY;
  383. extern char *OUTLINE_COLOR;
  384. extern char *PERCENT_FULL;
  385. extern char *PIXELS_PER_SECOND;
  386. extern char *PREVIOUS_TIME;
  387. extern char *PREVIOUS_VALUE;
  388. extern char *PREVIOUS_LINE_KEY;
  389. extern char *RAISED;
  390. extern char *READ_ONLY;
  391. extern char *REDUCE_NAME;
  392. extern char *REPAINT_KEY;
  393. extern char *RESTORED;
  394. extern char *ROUNDING_FACTOR;
  395. extern char *SCREEN_DEPTH;
  396. extern char *SCREEN_HEIGHT;
  397. extern char *SCREEN_WIDTH;
  398. extern char *SCROLL_POSITION;
  399. extern char *SCROLL_DOWN_KEY;
  400. extern char *SCROLL_UP_KEY;
  401. extern char *SCROLLER;
  402. extern char *SET_MARK_KEY;
  403. extern char *SHADOW_THICKNESS;
  404. extern char *SHOW_TEMPORARY_PROPERTIES;
  405. extern char *SHRINK_TO_FIT;
  406. extern char *SLIDING;
  407. extern char *SPACING_GAP;
  408. extern char *SPRINGINESS;
  409. extern char *START_ANGLE;
  410. extern char *STARTING_LINE;
  411. extern char *SUIT_PROPERTY_EDITOR;
  412. extern char *SUIT_SYSTEM_FONT;
  413. extern char *TAB_KEY;
  414. extern char *TAB_LENGTH;
  415. extern char *TAIL_X;
  416. extern char *TAIL_Y;
  417. extern char *TEXT_COLOR;
  418. extern char *TEXT_SPACING;
  419. extern char *TILE_COLOR;
  420. extern char *TILE_EXTENTS;
  421. extern char *TO;
  422. extern char *VALID_COLORS;
  423. extern char *VALIDATION_FUNCTION;
  424. extern char *VECTOR_X;
  425. extern char *VECTOR_Y;
  426. extern char *VERTICAL_MENU_VIEWPORT;
  427. extern char *VIEWPORT;
  428. extern char *VISIBLE_WITHIN_PROPERTY_EDITOR;
  429. extern char *VISIBLE;
  430. extern char *WALLPAPER;
  431. extern char *WALLPAPER_FUNCTION;
  432. extern char *WHEEL_COLOR;
  433. extern char *WINDOW;
  434. extern char *WIPE_BLOCK_KEY;
  435. extern char *YANK_KEY;
  436. #endif
  437. #endif
  438.  
  439. /* ------------------------------------------------------------------------------------------ */
  440.  
  441.  
  442.  
  443. #include <stdio.h>
  444. #include <string.h>
  445. #include <stdlib.h>
  446. #include <memory.h>
  447. #include "dynarray.h"
  448.  
  449. #ifdef __unix__
  450. #include <ctype.h>
  451. #endif
  452.  
  453.  
  454.  
  455. #if defined(__cplusplus)
  456. extern "C" {
  457. #    include "srgp.h"
  458. }
  459. #else
  460. #    include "srgp.h"
  461. #endif
  462.  
  463.  
  464.  
  465. /* ---------------------------------------- G P ---------------------------------------- */
  466.  
  467. #include <time.h>
  468. #ifdef __unix__
  469. #    include <sys/time.h>
  470. #    include <sys/types.h>
  471. #    include <sys/times.h>
  472. #    ifndef sgi
  473. #     include <sys/timeb.h>
  474. #    endif
  475. #endif
  476. #if GRX32
  477. #    include <sys/time.h>
  478. #endif
  479.  
  480.  
  481. #define STANDARD_CURSOR        0
  482. #define PIRATE_CURSOR        1
  483. #define WATCH_CURSOR        2
  484. #define PROMPT_CURSOR        3
  485. #define RIGHT_ARROW_CURSOR  4
  486.  
  487.  
  488. typedef struct color_str {
  489.     char *colorName;
  490.     boolean blackOnMonochrome;
  491. } GP_color;
  492.  
  493.  
  494. #define BILEVEL_DISPLAY         (SRGP_inquireCanvasDepth()==1)
  495. #define BLACK_ON_MONO         TRUE
  496. #define WHITE_ON_MONO         FALSE
  497.  
  498.  
  499. typedef struct {
  500.     char *family;
  501.     char *style;
  502.     double pointSize;
  503. } GP_font;
  504.  
  505.  
  506. typedef struct {
  507.     double x, y;
  508. } GP_point;
  509.  
  510.  
  511. typedef struct {
  512.     GP_point bottom_left, top_right;
  513. } GP_rectangle;
  514.  
  515.  
  516.  
  517. #if ANSI_COMPILER
  518.     typedef enum {
  519.     JUSTIFY_BOTTOM_LEFT, JUSTIFY_CENTER_LEFT, JUSTIFY_TOP_LEFT,
  520.     JUSTIFY_BOTTOM_CENTER, JUSTIFY_CENTER, JUSTIFY_TOP_CENTER,
  521.     JUSTIFY_BOTTOM_RIGHT, JUSTIFY_CENTER_RIGHT, JUSTIFY_TOP_RIGHT
  522.     } GP_justification;
  523. #else
  524.     typedef int GP_justification;
  525. #   define JUSTIFY_BOTTOM_LEFT       0
  526. #   define JUSTIFY_CENTER_LEFT       1
  527. #   define JUSTIFY_TOP_LEFT       2
  528. #   define JUSTIFY_BOTTOM_CENTER   3
  529. #   define JUSTIFY_CENTER       4
  530. #   define JUSTIFY_TOP_CENTER       5
  531. #   define JUSTIFY_BOTTOM_RIGHT       6
  532. #   define JUSTIFY_CENTER_RIGHT       7
  533. #   define JUSTIFY_TOP_RIGHT       8
  534. #endif
  535.  
  536.  
  537. typedef struct {
  538.     time_t secs;
  539.     time_t millisecs;
  540. } GP_time;            /* time abstraction */
  541.  
  542.  
  543.  
  544. SUIT_PROTOTYPE GP_color          GP_defColor     CARGS((char *name, boolean blackOnMonocrome));
  545. SUIT_PROTOTYPE GP_font          GP_defFont      CARGS((char *family, char *style, double pointSize));
  546. SUIT_PROTOTYPE GP_point          GP_defPoint     CARGS((double x, double y));
  547. SUIT_PROTOTYPE GP_rectangle   GP_defRectangle CARGS((double x1, double y1, double x2, double y2));
  548.  
  549. SUIT_PROTOTYPE int          GP_mapHeight CARGS((double height));
  550. SUIT_PROTOTYPE point          GP_mapPoint CARGS((GP_point pt));
  551. SUIT_PROTOTYPE rectangle      GP_mapRectangle CARGS((GP_rectangle rect));
  552. SUIT_PROTOTYPE int          GP_mapWidth CARGS((double width));
  553. SUIT_PROTOTYPE int          GP_mapX CARGS((double x));
  554. SUIT_PROTOTYPE int          GP_mapY CARGS((double y));
  555. SUIT_PROTOTYPE point *          GP_mapPointArray CARGS((int vCount, GP_point * vertices));
  556. SUIT_PROTOTYPE int *          GP_mapXArray CARGS((int vCount, double *vertices));
  557. SUIT_PROTOTYPE int *          GP_mapYArray CARGS((int vCount, double *vertices));
  558.  
  559. SUIT_PROTOTYPE double          GP_unMapHeight CARGS((int height));
  560. SUIT_PROTOTYPE GP_point          GP_unMapPoint CARGS((point pt));
  561. SUIT_PROTOTYPE GP_rectangle   GP_unMapRectangle CARGS((rectangle rect));
  562. SUIT_PROTOTYPE double          GP_unMapWidth CARGS((int width));
  563. SUIT_PROTOTYPE double          GP_unMapX CARGS((int x));
  564. SUIT_PROTOTYPE double          GP_unMapY CARGS((int y));
  565.  
  566. SUIT_PROTOTYPE void          GP_pushGraphicsState CARGS((void));
  567. SUIT_PROTOTYPE void          GP_popGraphicsState CARGS((void));
  568. SUIT_PROTOTYPE void          GP_setColor CARGS((GP_color color));
  569. SUIT_PROTOTYPE void          GP_setCursor CARGS((int cursor));
  570.  
  571. #define                  GP_setClipRectangle    SRGP_setClipRectangle
  572. #define                  GP_setFillBitmapPattern    SRGP_setFillBitmapPattern
  573. #define                  GP_setFillPixmapPattern    SRGP_setFillPixmapPattern
  574. #define                  GP_setFillStyle        SRGP_setFillStyle
  575. #define                  GP_setInputMode        SRGP_setInputMode
  576. #define                  GP_setLineStyle        SRGP_setLineStyle
  577.  
  578. #define                  GP_setLocatorMeasure    SRGP_setLocatorMeasure
  579. #define                  GP_setMarkerStyle        SRGP_setMarkerStyle
  580. #define                  GP_setMarkerSize        SRGP_setMarkerSize
  581. #define                  GP_setPenBitmapPattern    SRGP_setPenBitmapPattern
  582. #define                  GP_setPenPixmapPattern    SRGP_setPenPixmapPattern
  583. #define                  GP_setPenStyle        SRGP_setPenStyle
  584. #define                  GP_setPlaneMask        SRGP_setPlaneMask
  585. #define                  GP_setWriteMode        SRGP_setWriteMode
  586.  
  587. SUIT_PROTOTYPE void          GP_setWindow CARGS((GP_rectangle newWorld));
  588. SUIT_PROTOTYPE void          GP_setViewport CARGS((rectangle newView));
  589. SUIT_PROTOTYPE void          GP_setLineWidth CARGS((int newValue));
  590. SUIT_PROTOTYPE int          GP_getColorIndex CARGS((char *name));
  591. SUIT_PROTOTYPE char *          GP_getColorName CARGS((int index));
  592. SUIT_PROTOTYPE void          GP_registerForColorAllocation CARGS((void (*func)(void)));
  593.  
  594. #define                  GP_inquireActiveCanvas   SRGP_inquireActiveCanvas
  595. #define                  GP_inquireCanvasExtent   SRGP_inquireCanvasExtent
  596. #define                  GP_inquireCanvasSize     SRGP_inquireCanvasSize
  597. #define                  GP_inquireCanvasDepth    SRGP_inquireCanvasDepth
  598. #define                  GP_inquireColorTable     SRGP_inquireColorTable
  599.  
  600. SUIT_PROTOTYPE void          GP_inquireTextExtent CARGS((char *str, double *width,
  601.                               double *height, double *descenderHeight));
  602. SUIT_PROTOTYPE int          GP_numColorsAllocated CARGS((void));
  603. SUIT_PROTOTYPE int          GP_setFont CARGS((GP_font newfont));
  604.  
  605. #define                  GP_createCanvas           SRGP_createCanvas
  606. #define                  GP_useCanvas           SRGP_useCanvas
  607. #define                  GP_deleteCanvas           SRGP_deleteCanvas
  608.  
  609. SUIT_PROTOTYPE void          InitializeColors CARGS((int screenDepth));
  610. SUIT_PROTOTYPE void          InitializeCursors CARGS((void));
  611. SUIT_PROTOTYPE void          InitializeFonts CARGS((void));
  612.  
  613. #define                  GP_loadBitmapPatterns    SRGP_loadBitmapPatterns
  614. #define                  GP_loadColorTable           SRGP_loadColorTable
  615. #define                  GP_loadCommonColor       SRGP_loadCommonColor
  616. #define                  GP_loadCursorTable       SRGP_loadCursorTable
  617. #define                  GP_loadFontTable           SRGP_loadFontTable
  618. #define                  GP_beep               SRGP_beep
  619.  
  620. SUIT_PROTOTYPE void          GP_drawRectangle CARGS((GP_rectangle rect));
  621. SUIT_PROTOTYPE void          GP_ellipse CARGS((GP_rectangle rect));
  622. SUIT_PROTOTYPE void          GP_ellipseArc CARGS((GP_rectangle rect, double a1, double a2));
  623. SUIT_PROTOTYPE void          GP_ellipseCoord CARGS((double x1, double y1, double x2, double y2));
  624. SUIT_PROTOTYPE void          GP_fillEllipse CARGS((GP_rectangle rect));
  625. SUIT_PROTOTYPE void          GP_fillEllipseArc CARGS((GP_rectangle rect, double a1, double a2));
  626. SUIT_PROTOTYPE void          GP_fillEllipseCoord CARGS((double x1, double y1, double x2, double y2));
  627. SUIT_PROTOTYPE void          GP_fillRectanglePt CARGS((GP_point bottomLeft, GP_point topRight));
  628. SUIT_PROTOTYPE void          GP_fillRectangle CARGS((GP_rectangle rect));
  629. SUIT_PROTOTYPE void          GP_fillPolygon CARGS((int vCount, GP_point *vertices));
  630. SUIT_PROTOTYPE void          GP_fillPolygonCoord CARGS((int vCount, double *xList, double *yList));
  631. SUIT_PROTOTYPE void          GP_line CARGS((GP_point pt1, GP_point pt2));
  632.  
  633. #define                  GP_fillRectangleCoord(LX,BY,RX,TY) SRGP_fillRectangleCoord(GP_mapX(LX),\
  634.                                              GP_mapY(BY),\
  635.                                              GP_mapX(RX),\
  636.                                              GP_mapY(TY))
  637. #define                  GP_lineCoord(X1,Y1,X2,Y2)      SRGP_lineCoord(GP_mapX(X1), GP_mapY(Y1), \
  638.                                      GP_mapX(X2), GP_mapY(Y2))
  639. #define                  GP_marker(PNT)          SRGP_marker(GP_mapPoint(PNT))
  640. #define                  GP_markerCoord(X,Y)      SRGP_markerCoord(GP_mapX(X), GP_mapY(Y))
  641. #define                  GP_pointCoord(X,Y)      SRGP_pointCoord(GP_mapX(X), GP_mapY(Y))
  642. #define                  GP_rectangleCoord(LX,BY,RX,TY) SRGP_rectangleCoord(GP_mapX(LX), \
  643.                                          GP_mapY(BY), \
  644.                                          GP_mapX(RX), \
  645.                                          GP_mapY(TY))
  646. #define                  GP_refresh          SRGP_refresh
  647.  
  648. SUIT_PROTOTYPE void          GP_polygon CARGS((int vCount, GP_point *vertices));
  649. SUIT_PROTOTYPE void          GP_polygonCoord CARGS((int vCount, double *xList, double *yList));
  650. SUIT_PROTOTYPE void          GP_polyLine CARGS((int vCount, GP_point *vertices));
  651. SUIT_PROTOTYPE void          GP_polyLineCoord CARGS((int vxCount, double *xList, double *yList));
  652. SUIT_PROTOTYPE void          GP_polyMarker CARGS((int vCount, GP_point *vertices));
  653. SUIT_PROTOTYPE void          GP_polyMarkerCoord CARGS((int vCount, double *xs, double *ys));
  654. SUIT_PROTOTYPE void          GP_polyPoint CARGS((int vCount, GP_point *vertices));
  655. SUIT_PROTOTYPE void          GP_polyPointCoord CARGS((int vCount, double *xs, double *ys));
  656. SUIT_PROTOTYPE void          GP_rectanglePt CARGS((GP_point bottomLeft, GP_point topRight));
  657. SUIT_PROTOTYPE              GP_rectangle GP_text CARGS((GP_point pt, char *string));
  658.  
  659. SUIT_PROTOTYPE void          GP_unbeveledBorder CARGS((rectangle box, GP_color color,
  660.                             boolean raised, int width));
  661. SUIT_PROTOTYPE void          GP_beveledBorder CARGS((rectangle box, GP_color color, boolean raised,
  662.                               int width));
  663. SUIT_PROTOTYPE void          GP_fancyBeveledBorder CARGS((rectangle box, GP_color color, int width));
  664. SUIT_PROTOTYPE void          GP_beveledBox CARGS((rectangle box, GP_color color, boolean raised,
  665.                            int width));
  666. SUIT_PROTOTYPE void          GP_beveledDiamond CARGS((rectangle box, GP_color color, boolean raised,
  667.                                int width));
  668.  
  669. SUIT_PROTOTYPE void          GP_beveledTriangleNorth CARGS((GP_point forward, GP_point left,
  670.                                  GP_point right, GP_color color,
  671.                                  boolean raised, int thickness));
  672. SUIT_PROTOTYPE void          GP_beveledTriangleSouth CARGS((GP_point forward, GP_point left,
  673.                                  GP_point right, GP_color color,
  674.                                  boolean raised, int thickness));
  675. SUIT_PROTOTYPE void          GP_beveledTriangleEast CARGS((GP_point forward, GP_point left,
  676.                                 GP_point right, GP_color col,
  677.                                 boolean raised, int thickness));
  678. SUIT_PROTOTYPE void          GP_beveledTriangleWest CARGS((GP_point forward, GP_point left,
  679.                                 GP_point right, GP_color col,
  680.                                 boolean raised, int thickness));
  681.  
  682. SUIT_PROTOTYPE void          GP_justifyText CARGS((char *str, GP_justification just));
  683. SUIT_PROTOTYPE void          GP_justifyTextInRectangle CARGS((char *text, GP_justification just,
  684.                                    GP_rectangle rect));
  685.  
  686. SUIT_PROTOTYPE GP_time          GP_getCurrentTime CARGS((void));
  687. SUIT_PROTOTYPE time_t          GP_timeDifference CARGS((GP_time time1, GP_time time2));
  688. SUIT_PROTOTYPE void          GP_convertTime CARGS((GP_time theTime, int *hour, int *minute,
  689.                             int *second, int *millisecond));
  690.  
  691. SUIT_PROTOTYPE char **          GP_possibleFonts CARGS((void));
  692. SUIT_PROTOTYPE char **          GP_possibleStyles CARGS((void));
  693.  
  694. SUIT_PROTOTYPE void          GP_registerSpecialCharacter CARGS((char *character, GP_rectangle (*funct) (GP_point, char *)));
  695. SUIT_PROTOTYPE void          GP_registerStyle CARGS((char *character, GP_rectangle (*funct) (GP_point, char *, char *)));
  696. SUIT_PROTOTYPE void          GP_inquireTextExtentWithoutMapping CARGS((char *str, int *width, int *ascent, int *descent));
  697.  
  698. SUIT_PROTOTYPE GP_color          GP_defColorRGB CARGS((unsigned short red, unsigned short blue, unsigned short green,
  699.                             boolean blackOnMonocrome));
  700. SUIT_PROTOTYPE void          GP_describeColor CARGS((GP_color color, unsigned short *red, unsigned short *green,
  701.                               unsigned short *blue));
  702. SUIT_PROTOTYPE void          GP_replaceColor CARGS((GP_color oldColor, GP_color newColor));
  703.  
  704. SUIT_PROTOTYPE GP_color          GP_getShadowColor CARGS((GP_color color));
  705. SUIT_PROTOTYPE GP_color          GP_getDepthColor CARGS((GP_color color));
  706. SUIT_PROTOTYPE GP_color          GP_getHighlightColor CARGS((GP_color color));
  707.  
  708.  
  709.  
  710.  
  711. /* ---------------------------------------- SUIT ---------------------------------------- */
  712.  
  713. typedef void *Pointer;
  714.  
  715.  
  716. typedef int SUIT_springiness;
  717. #define VERTICAL_SPRINGINESS         1
  718. #define HORIZONTAL_SPRINGINESS         2
  719. #define ABOVE_SPRINGINESS         4
  720. #define BELOW_SPRINGINESS         8
  721. #define LEFT_SPRINGINESS        16
  722. #define RIGHT_SPRINGINESS        32
  723. #define NO_SPRINGINESS  0
  724. #define ALL_SPRINGINESS VERTICAL_SPRINGINESS|HORIZONTAL_SPRINGINESS|ABOVE_SPRINGINESS|BELOW_SPRINGINESS|LEFT_SPRINGINESS|RIGHT_SPRINGINESS
  725.  
  726.  
  727. typedef struct {
  728.     DynArray choices;  /* of (char *) */
  729.     int currentChoice;
  730. } SUIT_enum;
  731.  
  732.  
  733. typedef DynArray SUIT_textList; /* DynArray of (char *) */
  734.  
  735.  
  736. #ifndef MAX
  737. #    define MAX(A,B)    ( (A) > (B) ? (A) : (B) )
  738. #endif
  739. #ifndef MIN
  740. #    define MIN(A,B)    ( (A) < (B) ? (A) : (B) )
  741. #endif
  742. #ifndef ABS
  743. #    define ABS(X)    ( (X) > 0 ? (X) : -(X) )
  744. #endif
  745. #ifndef AVG
  746. #    define AVG(A,B)    ( ( (A) + (B) ) / 2 )
  747. #endif
  748.  
  749.  
  750. #define PRIVATE        static
  751. #define VOIDNULL    ( (void *) NULL )
  752. #define CHARNULL    ( (char *) NULL )
  753.  
  754.  
  755. /** SUIT TYPE DECLARATIONS **/
  756. typedef struct SUIT_class_str {
  757.     char *name;
  758.     DynArray props;        /* of property */
  759.     DynArray interestCallbacks; /* of SUIT_objectInterestCallback */
  760. } SUIT_class;
  761.  
  762.  
  763. typedef struct object_str {
  764.     char *name;
  765.     SUIT_class *classInfo;
  766.     unsigned int open            : 1;
  767.     unsigned int selected        : 1;
  768.     unsigned int has_been_painted   : 1;
  769.     unsigned int redisplay_required : 1;
  770.     unsigned int optimized_paint    : 1;
  771.     unsigned int mark_redisplay        : 1;
  772.     unsigned int permanent        : 1;
  773.     point offset;
  774.     DynArray displays;        /* dynamic array of type SUIT_display */
  775.     DynArray props;        /* dynamic array of type property */
  776.     DynArray children;        /* dynamic array of type SUIT_object */
  777.     DynArray objectInterest;    /* dynamic array of type InterestCallback */
  778.     struct object_str *parent;
  779. } SUIT_objectRecord, *SUIT_object;
  780.  
  781.  
  782.  
  783. #if ANSI_COMPILER
  784.     typedef enum { MOUSE_DOWN, MOUSE_UP, MOUSE_MOTION, CLICK, KEYSTROKE } SUIT_eventType;
  785. #else
  786.     typedef int SUIT_eventType;
  787. #   define MOUSE_DOWN 0
  788. #   define MOUSE_UP 1
  789. #   define MOUSE_MOTION 2
  790. #   define CLICK 3
  791. #   define KEYSTROKE 4
  792. #endif
  793.  
  794.  
  795. typedef struct input_event_str {
  796.     SUIT_eventType type;
  797.     GP_point worldLocation;
  798.     point relativePixelLocation;
  799.     char keyboard;
  800.     int button;
  801.     deluxe_locator_measure locator;
  802. } SUIT_event;
  803.  
  804.  
  805. typedef void (*SUIT_functionPointer) CARGS((void));
  806. typedef void (*SUIT_callbackFunctionPtr) CARGS((SUIT_object object));
  807.  
  808. typedef SUIT_object (*SUIT_trapperPtr) CARGS((SUIT_object object, SUIT_event *event));
  809. typedef void (*SUIT_objectInterestCallback) CARGS((SUIT_object object, char *propertyName, char *propertyType, Pointer oldValue, Pointer newValue));
  810.  
  811. typedef rectangle SUIT_viewport;
  812. typedef GP_rectangle SUIT_window;
  813.  
  814. typedef void (*SUIT_hitProcedure) CARGS((SUIT_object object, SUIT_event event));
  815. typedef void (*SUIT_paintProcedure) CARGS((SUIT_object object));
  816.  
  817.  
  818. #if ANSI_COMPILER
  819.     typedef enum { GLOBAL, CLASS, OBJECT } SUIT_level;
  820. #else
  821.     typedef int SUIT_level;
  822. #   define GLOBAL 0
  823. #   define CLASS 1
  824. #   define OBJECT 2
  825. #endif
  826.  
  827.  
  828. #if ANSI_COMPILER
  829.     typedef enum { TEMPORARY, PERMANENT } SUIT_permanence;
  830. #else
  831.     typedef int  SUIT_permanence;
  832. #   define TEMPORARY 0
  833. #   define PERMANENT 1
  834. #endif
  835.  
  836.  
  837. #define NORMAL_EXIT TRUE    /* Write hints file. */
  838. #define ABORT FALSE        /* Abort without writing a new hints file. */
  839.  
  840.  
  841. #if ANSI_COMPILER
  842.     typedef enum { DO_NOT_SAVE_SUI_FILE = 0, SAVE_SUI_FILE = 1 } SUIT_saveStatus;
  843.     typedef enum { DO_NOT_EXIT_APPLICATION = 0, EXIT_APPLICATION = 1} SUIT_exitStatus;
  844. #else
  845.     typedef int SUIT_saveStatus;
  846.     typedef int SUIT_exitStatus;
  847. #   define DO_NOT_SAVE_SUI_FILE        0
  848. #   define SAVE_SUI_FILE        1
  849. #   define DO_NOT_EXIT_APPLICATION  0
  850. #   define EXIT_APPLICATION        1
  851. #endif
  852.  
  853.  
  854. typedef void (*PropedFunction) CARGS((SUIT_object));
  855. typedef SUIT_object (*SUIT_createProcedure) CARGS((char *name));
  856.  
  857.  
  858. #if ANSI_COMPILER
  859.     typedef enum { NEVER, WHILE_MOUSE_DOWN, UNTIL_MOUSE_UP } SUIT_mouseMotion;
  860. #else
  861.     typedef int SUIT_mouseMotion;
  862. #   define NEVER 0
  863. #   define WHILE_MOUSE_DOWN  1
  864. #   define UNTIL_MOUSE_UP 2
  865. #endif
  866.  
  867.  
  868.  
  869. #if ANSI_COMPILER
  870.     typedef enum { REPLY_NO=0, REPLY_YES=1, REPLY_CANCEL=2, REPLY_OK=3, REPLY_BUTTON1=1, REPLY_BUTTON2=0 } Reply;
  871. #else
  872.     typedef int Reply;
  873. #   define REPLY_NO 0
  874. #   define REPLY_YES 1
  875. #   define REPLY_CANCEL 2
  876. #   define REPLY_OK 3
  877. #   define REPLY_BUTTON1 1
  878. #   define REPLY_BUTTON2 0
  879. #endif
  880.  
  881.  
  882. typedef boolean (*SUIT_validationFunction) CARGS((SUIT_object object));
  883.  
  884.  
  885. typedef struct {
  886.     char *name;
  887.     Pointer (*convertFromAscii) CARGS((char *string, boolean *error));
  888.     char *(*convertToAscii) CARGS((Pointer value));
  889.     int (*compare) CARGS((Pointer value1, Pointer value2));
  890.     void (*destroy) CARGS((Pointer value));
  891.     Pointer (*copy) CARGS((Pointer value));
  892.     Pointer (*defaultValue) CARGS((void));
  893.     char *widgetClass;
  894. } SUIT_type;
  895.  
  896.  
  897. typedef void (*SUIT_propertyCallback) CARGS((SUIT_level level, char *classOrObjectName, char *propertyName,
  898.                          char *propertyType, Pointer value, boolean permanent));
  899.  
  900.  
  901.  
  902.  
  903. extern void si_assertionHasFailed CARGS((char *message, int lineNumber, char *fileName));
  904.  
  905. #ifdef _Windows
  906.      /* This is a hack to conserve static memory space that the assertion strings
  907.     would otherwise use up. */
  908. #define ASSERT(TEST,MESSAGE) \
  909.     if ( !(TEST) )  si_assertionHasFailed("", 0, "");
  910. #else
  911.  
  912. #define ASSERT(TEST,MESSAGE)                    \
  913.     if ( !(TEST) )  {                        \
  914.     char mes[1000];                        \
  915.     sprintf MESSAGE;                    \
  916.     si_assertionHasFailed(mes, __LINE__, __FILE__);        \
  917.     }
  918. #endif
  919.  
  920.  
  921.  
  922. #define                  OBJECT_NAME(O)            (((O)==NULL)? "NULL" : (O)->name)
  923. #define                  OBJECT_CLASS(O)            (((O)==NULL)? "NULL" : (O)->classInfo->name)
  924. #define                  OBJECT_VIEWPORT(O)        (SUIT_getViewport((O),"viewport"))
  925. #define                  OBJECT_WINDOW(O)            (SUIT_getWindow((O),"window"))
  926. #define                  OBJECT_OPEN(O)            ((O)->open)
  927. #define                  OBJECT_SELECTED(O)        ((O)->selected)
  928. #define                  OBJECT_PERMANENT(O)        ((O)->permanent)
  929. #define                  OBJECT_OPTIMIZED(O)        ((O)->optimized_paint)
  930.  
  931.  
  932.  
  933. SUIT_PROTOTYPE char *          SUIT_getEnumSelection CARGS((SUIT_enum e));
  934. SUIT_PROTOTYPE void          SUIT_setEnumSelection CARGS((SUIT_enum *e, char *choice));
  935. SUIT_PROTOTYPE SUIT_enum      SUIT_defEnum CARGS((char *currentChoice, int numChoices, char *choices[]));
  936.  
  937.  
  938. SUIT_PROTOTYPE void          SUIT_appendToTextList CARGS((SUIT_textList list, char *str));
  939. SUIT_PROTOTYPE void          SUIT_addToTextList CARGS((SUIT_textList list, int beforeIndex, char *str));
  940. SUIT_PROTOTYPE void          SUIT_deleteFromTextList CARGS((SUIT_textList list, int index));
  941. SUIT_PROTOTYPE int          SUIT_sizeOfTextList CARGS((SUIT_textList list));
  942. SUIT_PROTOTYPE void          SUIT_sortTextList CARGS((SUIT_textList list));
  943. SUIT_PROTOTYPE char *          SUIT_itemInTextList CARGS((SUIT_textList list, int index));
  944. SUIT_PROTOTYPE SUIT_textList  SUIT_defTextList CARGS((char *list[], int numItems));
  945. SUIT_PROTOTYPE SUIT_textList  SUIT_copyTextList CARGS((SUIT_textList list));
  946. SUIT_PROTOTYPE void          SUIT_destroyTextList CARGS((SUIT_textList list));
  947. #define SUIT_freeTextList(LIST)       SUIT_destroyTextList(LIST)
  948.  
  949.  
  950. SUIT_PROTOTYPE void          SUIT_init CARGS((char *programName));
  951. SUIT_PROTOTYPE void          SUIT_initFromCode CARGS((char *programName));
  952. SUIT_PROTOTYPE void          SUIT_deluxeInit CARGS((int *argc, char *argv[]));
  953. SUIT_PROTOTYPE void          SUIT_printCommandLineOptions CARGS((void));
  954. SUIT_PROTOTYPE void          SUIT_clearScreen CARGS((void));
  955. SUIT_PROTOTYPE void          SUIT_writeSUIFile CARGS((char *fileName));
  956. #define                  SUIT_writeHintsFile(FILENAME)   SUIT_writeSUIFile(FILENAME)
  957. SUIT_PROTOTYPE void          SUIT_done CARGS((SUIT_saveStatus saveStat, SUIT_exitStatus exitStat));
  958. SUIT_PROTOTYPE SUIT_viewport  SUIT_getScreenViewport CARGS((void));
  959. SUIT_PROTOTYPE void          SUIT_establishPropertyEditor CARGS((PropedFunction funct));
  960. SUIT_PROTOTYPE void          SUIT_redisplayRequiredInRegion CARGS((SUIT_viewport rect));
  961. #define                  SUIT_redrawSection(VIEWPORT)  SUIT_redisplayRequiredInRegion(VIEWPORT)
  962.  
  963.  
  964. SUIT_PROTOTYPE SUIT_object    SUIT_createObject CARGS((char *name, char *className));
  965. SUIT_PROTOTYPE void          SUIT_destroyObject CARGS((SUIT_object object));
  966. SUIT_PROTOTYPE void          SUIT_eraseObject CARGS((SUIT_object object));
  967. SUIT_PROTOTYPE void          SUIT_addDisplayToObject CARGS((SUIT_object object, char *displayName,
  968.                                  SUIT_hitProcedure hitproc, SUIT_paintProcedure paintproc));
  969. SUIT_PROTOTYPE void          SUIT_addEmployeeToDisplay CARGS((SUIT_object object, char *displayName, SUIT_object employee));
  970. SUIT_PROTOTYPE void          SUIT_addChildToObject CARGS((SUIT_object object, SUIT_object child));
  971. SUIT_PROTOTYPE SUIT_object    SUIT_getParent CARGS((SUIT_object object));
  972. SUIT_PROTOTYPE void          SUIT_selectObject CARGS((SUIT_object object));
  973. SUIT_PROTOTYPE void          SUIT_deselectObject CARGS((SUIT_object object));
  974. SUIT_PROTOTYPE void          SUIT_bringToFront CARGS((SUIT_object object));
  975. SUIT_PROTOTYPE void          SUIT_sendToBack CARGS((SUIT_object object));
  976. SUIT_PROTOTYPE void          SUIT_cycleObject CARGS((SUIT_object object));
  977. SUIT_PROTOTYPE SUIT_object    SUIT_mapPointToObject CARGS((point pt));
  978. SUIT_PROTOTYPE boolean          SUIT_pointInObject CARGS((SUIT_object object, int x, int y));
  979. SUIT_PROTOTYPE void          SUIT_borderObject CARGS((SUIT_object object));
  980. SUIT_PROTOTYPE void          SUIT_backgroundAndBorderObject CARGS((SUIT_object object));
  981. SUIT_PROTOTYPE SUIT_object    SUIT_name CARGS((char *name));
  982. #define                  SUIT_objectNamed(NAME)  SUIT_name(NAME)
  983. SUIT_PROTOTYPE void          SUIT_allObjectsRequireRedisplay CARGS((char *className));
  984. SUIT_PROTOTYPE SUIT_object    SUIT_dummyObjectInClass CARGS((char *className));
  985. SUIT_PROTOTYPE void          SUIT_changeHeightPreservingRatio CARGS((SUIT_object object, int height));
  986. SUIT_PROTOTYPE void          SUIT_changeWidthPreservingRatio CARGS((SUIT_object object, int width));
  987. SUIT_PROTOTYPE void          SUIT_changeObjectSize CARGS((SUIT_object object, int width, int height));
  988.  
  989.  
  990. SUIT_PROTOTYPE char *          SUIT_levelName CARGS((SUIT_level level));
  991. SUIT_PROTOTYPE char *          SUIT_eventName CARGS((SUIT_event evt));
  992.  
  993. SUIT_PROTOTYPE void          SUIT_setProperty CARGS((SUIT_object object, char *propertyName, char *propertyType,
  994.                               Pointer propertyPtr, SUIT_level level));
  995. SUIT_PROTOTYPE void          SUIT_setInteger CARGS((SUIT_object object, char *name, int value));
  996. SUIT_PROTOTYPE void          SUIT_setFunctionPointer CARGS((SUIT_object object, char *name, SUIT_functionPointer value));
  997. SUIT_PROTOTYPE void          SUIT_setDouble CARGS((SUIT_object object, char *name, double value));
  998. SUIT_PROTOTYPE void          SUIT_setText CARGS((SUIT_object object, char *name, char *value));
  999. SUIT_PROTOTYPE void          SUIT_setFont CARGS((SUIT_object object, char *name, GP_font value));
  1000. SUIT_PROTOTYPE void          SUIT_setColor CARGS((SUIT_object object, char *name, GP_color value));
  1001. SUIT_PROTOTYPE void          SUIT_setViewport CARGS((SUIT_object object, char *name, SUIT_viewport value));
  1002. SUIT_PROTOTYPE void          SUIT_setWindow CARGS((SUIT_object object, char *name, SUIT_window value));
  1003. SUIT_PROTOTYPE void          SUIT_setObject CARGS((SUIT_object object, char *name, SUIT_object value));
  1004. SUIT_PROTOTYPE void          SUIT_setDynArray CARGS((SUIT_object object, char *name, DynArray value));
  1005. SUIT_PROTOTYPE void          SUIT_setSpringiness CARGS((SUIT_object object, char *name, SUIT_springiness value));
  1006. SUIT_PROTOTYPE void          SUIT_setEnum CARGS((SUIT_object object, char *name, SUIT_enum value));
  1007. SUIT_PROTOTYPE void          SUIT_setBoolean CARGS((SUIT_object object, char *name, boolean value));
  1008. SUIT_PROTOTYPE void          SUIT_setTextList CARGS((SUIT_object object, char *name, SUIT_textList value));
  1009. SUIT_PROTOTYPE void          SUIT_setEnumString CARGS((SUIT_object object, char *propertyName, char *enumString));
  1010.  
  1011.  
  1012. SUIT_PROTOTYPE void          SUIT_deluxeSetInteger CARGS((SUIT_object object, char *name, int value, SUIT_level level));
  1013. SUIT_PROTOTYPE void          SUIT_deluxeSetFunctionPointer CARGS((SUIT_object object, char *name, SUIT_functionPointer value,
  1014.                                    SUIT_level level));
  1015. SUIT_PROTOTYPE void          SUIT_deluxeSetBoolean CARGS((SUIT_object object, char *name, boolean value, SUIT_level level));
  1016. SUIT_PROTOTYPE void          SUIT_deluxeSetDouble CARGS((SUIT_object object, char *name, double value, SUIT_level level));
  1017. SUIT_PROTOTYPE void          SUIT_deluxeSetText CARGS((SUIT_object object, char *name, char *value, SUIT_level level));
  1018. SUIT_PROTOTYPE void          SUIT_deluxeSetFont CARGS((SUIT_object object, char *name, GP_font value, SUIT_level level));
  1019. SUIT_PROTOTYPE void          SUIT_deluxeSetColor CARGS((SUIT_object object, char *name, GP_color value, SUIT_level level));
  1020. SUIT_PROTOTYPE void          SUIT_deluxeSetViewport CARGS((SUIT_object object,char *name, SUIT_viewport value, SUIT_level level));
  1021. SUIT_PROTOTYPE void          SUIT_deluxeSetWindow CARGS((SUIT_object object, char *name, SUIT_window value, SUIT_level level));
  1022. SUIT_PROTOTYPE void          SUIT_deluxeSetObject CARGS((SUIT_object object, char *name, SUIT_object value,SUIT_level level));
  1023. SUIT_PROTOTYPE void          SUIT_deluxeSetDynArray CARGS((SUIT_object object, char *name, DynArray value,SUIT_level level));
  1024. SUIT_PROTOTYPE void          SUIT_deluxeSetSpringiness CARGS((SUIT_object object, char *name, SUIT_springiness value,
  1025.                                    SUIT_level level));
  1026. SUIT_PROTOTYPE void          SUIT_deluxeSetEnum CARGS((SUIT_object object, char *name, SUIT_enum value, SUIT_level level));
  1027. SUIT_PROTOTYPE void          SUIT_deluxeSetTextList CARGS((SUIT_object object, char *name, SUIT_textList value,
  1028.                                 SUIT_level level));
  1029. SUIT_PROTOTYPE void          SUIT_deluxeSetEnumString CARGS((SUIT_object object, char *propertyName, char *enumString,
  1030.                                   SUIT_level level));
  1031.  
  1032.  
  1033. SUIT_PROTOTYPE Pointer          SUIT_getProperty CARGS((SUIT_object object, char *propertyName, char *propertyType));
  1034. SUIT_PROTOTYPE int          SUIT_getInteger CARGS((SUIT_object object, char *name));
  1035. SUIT_PROTOTYPE SUIT_functionPointer SUIT_getFunctionPointer CARGS((SUIT_object object, char *name));
  1036. SUIT_PROTOTYPE boolean          SUIT_getBoolean CARGS((SUIT_object object, char *name));
  1037. SUIT_PROTOTYPE double          SUIT_getDouble CARGS((SUIT_object object, char *name));
  1038. SUIT_PROTOTYPE char *          SUIT_getText CARGS((SUIT_object object, char *name));
  1039. SUIT_PROTOTYPE GP_font          SUIT_getFont CARGS((SUIT_object object, char *name));
  1040. SUIT_PROTOTYPE GP_color          SUIT_getColor CARGS((SUIT_object object, char *name));
  1041. SUIT_PROTOTYPE SUIT_viewport  SUIT_getViewport CARGS((SUIT_object object, char *name));
  1042. SUIT_PROTOTYPE SUIT_window    SUIT_getWindow CARGS((SUIT_object object,char *name));
  1043. SUIT_PROTOTYPE SUIT_object    SUIT_getObject CARGS((SUIT_object object, char *name));
  1044. SUIT_PROTOTYPE DynArray          SUIT_getDynArray CARGS((SUIT_object object, char *name));
  1045. SUIT_PROTOTYPE SUIT_springiness SUIT_getSpringiness CARGS((SUIT_object object, char *name));
  1046. SUIT_PROTOTYPE SUIT_enum      SUIT_getEnum CARGS((SUIT_object object, char *name));
  1047. SUIT_PROTOTYPE SUIT_textList  SUIT_getTextList CARGS((SUIT_object object, char *name));
  1048. SUIT_PROTOTYPE char *          SUIT_getEnumString CARGS((SUIT_object object, char *propertyName));
  1049.  
  1050.  
  1051. SUIT_PROTOTYPE Pointer     SUIT_deluxeGetProperty
  1052.                     CARGS((SUIT_object object,
  1053.                        char *propertyName,
  1054.                        char *propertyType,
  1055.                        SUIT_level level));
  1056.  
  1057. SUIT_PROTOTYPE int          SUIT_deluxeGetInteger
  1058.                     CARGS((SUIT_object object,
  1059.                        char *name,
  1060.                        SUIT_level level));
  1061.  
  1062. SUIT_PROTOTYPE SUIT_functionPointer SUIT_deluxeGetFunctionPointer CARGS((SUIT_object object,
  1063.                                      char *name,
  1064.                                      SUIT_level level));
  1065.  
  1066. SUIT_PROTOTYPE boolean          SUIT_deluxeGetBoolean CARGS((SUIT_object object,
  1067.                                char *name,
  1068.                                SUIT_level level));
  1069.  
  1070. SUIT_PROTOTYPE double          SUIT_deluxeGetDouble CARGS((SUIT_object object,
  1071.                               char *name,
  1072.                               SUIT_level level));
  1073.  
  1074. SUIT_PROTOTYPE char *          SUIT_deluxeGetText CARGS((SUIT_object object,
  1075.                             char *name,
  1076.                             SUIT_level level));
  1077.  
  1078. SUIT_PROTOTYPE GP_font          SUIT_deluxeGetFont CARGS((SUIT_object object,
  1079.                             char *name,
  1080.                             SUIT_level level));
  1081.  
  1082. SUIT_PROTOTYPE GP_color          SUIT_deluxeGetColor CARGS((SUIT_object object,
  1083.                              char *name,
  1084.                              SUIT_level level));
  1085.  
  1086. SUIT_PROTOTYPE SUIT_viewport  SUIT_deluxeGetViewport CARGS((SUIT_object object, char *name, SUIT_level level));
  1087. SUIT_PROTOTYPE SUIT_window    SUIT_deluxeGetWindow CARGS((SUIT_object object, char *name, SUIT_level level));
  1088. SUIT_PROTOTYPE SUIT_object    SUIT_deluxeGetObject CARGS((SUIT_object object, char *name, SUIT_level level));
  1089. SUIT_PROTOTYPE DynArray          SUIT_deluxeGetDynArray CARGS((SUIT_object object, char *name, SUIT_level level));
  1090. SUIT_PROTOTYPE SUIT_springiness SUIT_deluxeGetSpringiness CARGS((SUIT_object object, char *name, SUIT_level level));
  1091. SUIT_PROTOTYPE SUIT_enum      SUIT_deluxeGetEnum CARGS((SUIT_object object, char *name, SUIT_level level));
  1092. SUIT_PROTOTYPE SUIT_textList  SUIT_deluxeGetTextList CARGS((SUIT_object object, char *name, SUIT_level level));
  1093. SUIT_PROTOTYPE char *          SUIT_deluxeGetEnumString CARGS((SUIT_object object, char *propertyName, SUIT_level level));
  1094.  
  1095. SUIT_PROTOTYPE boolean          SUIT_propertyExists CARGS((SUIT_object obj, char *propertyName, char *propertyType,
  1096.                              SUIT_level level));
  1097. SUIT_PROTOTYPE void          SUIT_makePropertyPermanent CARGS((SUIT_object object, char *name, SUIT_level level));
  1098. SUIT_PROTOTYPE void          SUIT_makePropertyTemporary CARGS((SUIT_object object, char *name, SUIT_level level));
  1099. SUIT_PROTOTYPE void          SUIT_makeObjectTemporary CARGS((SUIT_object object));
  1100. SUIT_PROTOTYPE void          SUIT_makeObjectPermanent CARGS((SUIT_object object));
  1101. SUIT_PROTOTYPE void          SUIT_eraseProperty CARGS((SUIT_object object, char *propertyName, SUIT_level level));
  1102.  
  1103. SUIT_PROTOTYPE void          SUIT_registerType CARGS((char *name,
  1104.                                Pointer (*readProcedure) (char *buffer, boolean *error),
  1105.                                char *(*writeProcedure) (Pointer value),
  1106.                                int (*compareProcedure) (Pointer value1, Pointer value2),
  1107.                                void (*destroyProcedure) (Pointer value),
  1108.                                Pointer (*copyProcedure) (Pointer value),
  1109.                                Pointer (*defaultProcedure) (void),
  1110.                                char *widgetClass));
  1111.  
  1112. SUIT_PROTOTYPE void          SUIT_beginDisplay CARGS((void));
  1113. SUIT_PROTOTYPE void          SUIT_checkAndProcessInput CARGS((int numberOfSecs));
  1114. #define SUIT_processInput(TIME)      SUIT_checkAndProcessInput(TIME)
  1115. SUIT_PROTOTYPE void          SUIT_redisplayRequired CARGS((SUIT_object object));
  1116. SUIT_PROTOTYPE void          SUIT_redisplayNotRequired CARGS((SUIT_object object));
  1117. SUIT_PROTOTYPE void          SUIT_performRedisplay CARGS((void));
  1118.  
  1119.  
  1120. SUIT_PROTOTYPE point          SUIT_drag CARGS((void (*graphicsCallback) (point pt)));
  1121. SUIT_PROTOTYPE point          SUIT_dragText CARGS((char *text));
  1122. SUIT_PROTOTYPE point          SUIT_dragTextWithOffset CARGS((char *text, int x, int y));
  1123. SUIT_PROTOTYPE void          SUIT_iterateOverObjects CARGS((void (*callback) (SUIT_object object)));
  1124. SUIT_PROTOTYPE SUIT_viewport  SUIT_moveRectangle CARGS((SUIT_viewport original, point start, boolean allowOffScreen));
  1125. SUIT_PROTOTYPE SUIT_viewport  SUIT_resizeRectangle CARGS((SUIT_viewport original));
  1126.  
  1127.  
  1128. #if defined(MACINTOSH) || defined(RS6000) || defined(DEC)
  1129. SUIT_PROTOTYPE char *strdup CARGS((char *));
  1130. #elif defined(_Windows)
  1131. #define strdup winStrdup
  1132.  /* This function is in suitmem.c */
  1133. SUIT_PROTOTYPE char *strdup CARGS((char *));
  1134. #endif
  1135.  
  1136. SUIT_PROTOTYPE int          SUIT_stringsMatch CARGS((char *str1, char *str2));
  1137. SUIT_PROTOTYPE int          SUIT_caseInsensitiveCompare CARGS((char *str1, char *str2));
  1138. SUIT_PROTOTYPE boolean          SUIT_caseInsensitiveMatch CARGS((char *str1, char *str2));
  1139. SUIT_PROTOTYPE int          SUIT_stringContains CARGS((char *str1, char *str2));
  1140. #define                  SUIT_createSafeString(STRING)  strdup(STRING)
  1141. #define                  SUIT_copyString(STRING)         strdup(STRING)
  1142.  
  1143. SUIT_PROTOTYPE Pointer          SUIT_copyData CARGS((Pointer ptr, int length));
  1144. #define                  SUIT_createSafeData(POINTER,LENGTH)  SUIT_copyData(POINTER,LENGTH)
  1145.  
  1146.  
  1147. SUIT_PROTOTYPE boolean          SUIT_viewportsEqual CARGS((SUIT_viewport first, SUIT_viewport second));
  1148. SUIT_PROTOTYPE void *          SUIT_convertType CARGS((void *value, char *fromType, char *toType));
  1149.  
  1150.  
  1151. SUIT_PROTOTYPE void          SUIT_hitObject CARGS((SUIT_object object, SUIT_event event));
  1152. SUIT_PROTOTYPE void          SUIT_paintObject CARGS((SUIT_object object));
  1153. SUIT_PROTOTYPE SUIT_event     SUIT_adjustEventForObject CARGS((SUIT_event starter, SUIT_object parent, SUIT_object child));
  1154. SUIT_PROTOTYPE SUIT_viewport  SUIT_adjustForSpringiness CARGS((SUIT_viewport parentsOldViewport, SUIT_viewport parentsNewViewport,
  1155.                                    SUIT_viewport childsOldViewport, SUIT_springiness springiness));
  1156. SUIT_PROTOTYPE boolean          SUIT_viewportsOverlap CARGS((SUIT_viewport rect, SUIT_viewport viewport));
  1157.  
  1158. SUIT_PROTOTYPE void          SUIT_registerClass CARGS((char *ClassName, SUIT_createProcedure createProc, char *helpText));
  1159. SUIT_PROTOTYPE int          SUIT_numberOfChildren CARGS((SUIT_object object));
  1160. SUIT_PROTOTYPE SUIT_object    SUIT_getChild CARGS((SUIT_object object, int whichChild));
  1161. SUIT_PROTOTYPE DynArray          SUIT_getChildren CARGS((SUIT_object object));
  1162. SUIT_PROTOTYPE SUIT_object    SUIT_getSibling CARGS((SUIT_object obj, char* siblingName));
  1163. SUIT_PROTOTYPE int          SUIT_numberOfEmployees CARGS((SUIT_object object, char *displayName));
  1164. SUIT_PROTOTYPE SUIT_object    SUIT_getEmployee CARGS((SUIT_object object, char *displayName, int whichEmployee));
  1165. SUIT_PROTOTYPE DynArray          SUIT_getEmployees CARGS((SUIT_object object, char *display));
  1166. SUIT_PROTOTYPE void          SUIT_registerTrapper CARGS((SUIT_trapperPtr trapper));
  1167. SUIT_PROTOTYPE void          SUIT_unregisterTrapper CARGS((void));
  1168. SUIT_PROTOTYPE void          SUIT_removeChild CARGS((SUIT_object child));
  1169. SUIT_PROTOTYPE void          SUIT_removeEmployee CARGS((char *display, SUIT_object employee));
  1170.  
  1171. SUIT_PROTOTYPE void          SUIT_reportMouseMotion CARGS((SUIT_object object, SUIT_mouseMotion type));
  1172.  
  1173. SUIT_PROTOTYPE void          SUIT_passEventDown CARGS((SUIT_object object, SUIT_event event));
  1174.  
  1175. SUIT_PROTOTYPE void          SUIT_limitedCheckAndProcessInput CARGS((int numberOfSecs, DynArray activeObjects));
  1176. SUIT_PROTOTYPE void          SUIT_beginStandardApplication CARGS((void));
  1177.  
  1178. SUIT_PROTOTYPE void          SUIT_suspendMarkingRedisplay CARGS((SUIT_object object));
  1179. SUIT_PROTOTYPE void          SUIT_resumeMarkingRedisplay CARGS((SUIT_object object));
  1180. SUIT_PROTOTYPE void          SUIT_redrawObjectsAbove CARGS((SUIT_object me));
  1181. SUIT_PROTOTYPE boolean          SUIT_isAnyoneOverMe CARGS((SUIT_object me));
  1182.  
  1183. SUIT_PROTOTYPE void          SUIT_paintChildren CARGS((SUIT_object object));
  1184. SUIT_PROTOTYPE void          SUIT_paintEmployees CARGS((SUIT_object object));
  1185.  
  1186. SUIT_PROTOTYPE SUIT_object    SUIT_getOneObjectFromClass CARGS((char *className));
  1187. SUIT_PROTOTYPE void          SUIT_registerInterest CARGS((SUIT_object object, SUIT_objectInterestCallback callback));
  1188. SUIT_PROTOTYPE void          SUIT_registerInterestInClass CARGS((char *className, SUIT_objectInterestCallback callback));
  1189. SUIT_PROTOTYPE void          SUIT_registerInterestInGlobal CARGS((SUIT_objectInterestCallback callback));
  1190.  
  1191. SUIT_PROTOTYPE void          SUIT_unlockProperty CARGS((SUIT_object object, char *propertyName, SUIT_level level));
  1192. SUIT_PROTOTYPE void          SUIT_lockProperty CARGS((SUIT_object object, char *propertyName, SUIT_level level));
  1193. SUIT_PROTOTYPE boolean          SUIT_propertyIsLocked CARGS((SUIT_object object, char *propertyName, SUIT_level level));
  1194.  
  1195. #ifdef _Windows
  1196. #define                  SUIT_malloc(SIZE)           SRGP_malloc(SIZE)
  1197. #define                  SUIT_free(PTR)           SRGP_free(PTR)
  1198. #define                  SUIT_realloc(PTR,SIZE)   SRGP_realloc(PTR,SIZE)
  1199. #else
  1200. #define                  SUIT_malloc(SIZE)           malloc(SIZE)
  1201. #define                  SUIT_free(PTR)           free(PTR)
  1202. #define                  SUIT_realloc(PTR,SIZE)   realloc(PTR,SIZE)
  1203. #endif
  1204.  
  1205. SUIT_PROTOTYPE char *          SUIT_createRCString CARGS((char *s));
  1206.  
  1207. SUIT_PROTOTYPE void          SUIT_callPropertyEditor CARGS((SUIT_object object));
  1208. SUIT_PROTOTYPE void          SUIT_closePropertyEditor CARGS((void));
  1209.  
  1210.  
  1211. SUIT_PROTOTYPE SUIT_object    SUIT_createBoundedArea CARGS((char *name, void (*callback) (void))); /* 2-d panner */
  1212. SUIT_PROTOTYPE SUIT_object    SUIT_createBoundedValue CARGS((char *name, void (*callback) (SUIT_object object)));
  1213. SUIT_PROTOTYPE SUIT_object    SUIT_createButton CARGS((char *name, void (*callback) (SUIT_object object)));
  1214. SUIT_PROTOTYPE SUIT_object    SUIT_createDoneButton CARGS((SUIT_callbackFunctionPtr callback));
  1215. SUIT_PROTOTYPE SUIT_object    SUIT_createAbortButton CARGS((SUIT_callbackFunctionPtr callback));
  1216. SUIT_PROTOTYPE SUIT_object    SUIT_createArrowButton CARGS((char *name, void (*callback) (SUIT_object object)));
  1217. SUIT_PROTOTYPE SUIT_object    SUIT_createColorChips CARGS((char *name, void (*callback) (SUIT_object object)));
  1218. SUIT_PROTOTYPE SUIT_object    SUIT_createLabel CARGS((char *name));
  1219. SUIT_PROTOTYPE SUIT_object    SUIT_createOnOffSwitch CARGS((char *name, void (*callback) (SUIT_object object)));
  1220. SUIT_PROTOTYPE SUIT_object    SUIT_createPatternChips CARGS((char *name, void (*callback) (SUIT_object object)));
  1221. SUIT_PROTOTYPE SUIT_object    SUIT_createPlaceMat CARGS((char *name));  /* aesthetics only: just draws a rectangle */
  1222. SUIT_PROTOTYPE SUIT_object    SUIT_createTrashCan CARGS((char *name));
  1223. SUIT_PROTOTYPE SUIT_object    SUIT_createInfoButton CARGS((char *name));
  1224. SUIT_PROTOTYPE SUIT_object    SUIT_createExportButton CARGS((char *name));
  1225. SUIT_PROTOTYPE SUIT_object    SUIT_createTypeInBox CARGS((char *name, void (*callback)(SUIT_object object)));
  1226. SUIT_PROTOTYPE SUIT_object    SUIT_createTextEditor CARGS((char *name, void (*callback)(SUIT_object object)));
  1227. SUIT_PROTOTYPE SUIT_object    SUIT_createUVALogo CARGS((char *name));
  1228. SUIT_PROTOTYPE SUIT_object    SUIT_createElevator CARGS((char *name, void (*callback)(SUIT_object object)));
  1229. SUIT_PROTOTYPE SUIT_object    SUIT_createSpringPanel CARGS((char *name));
  1230. SUIT_PROTOTYPE SUIT_object    SUIT_createFontPanel CARGS((char *name));
  1231. SUIT_PROTOTYPE SUIT_object    SUIT_createCallbackFunctionPanel CARGS((char *name));
  1232.  
  1233. SUIT_PROTOTYPE SUIT_object    SUIT_createOKCancelDialogBox CARGS((char *name, SUIT_object innards, SUIT_validationFunction dataOK));
  1234.  
  1235. SUIT_PROTOTYPE Reply          SUIT_activateDialogBox CARGS((SUIT_object dbox));
  1236.  
  1237. SUIT_PROTOTYPE Reply          SUIT_ask CARGS((char *question, char *button1Name, char *button2Name));
  1238. SUIT_PROTOTYPE Reply          SUIT_askWithCancel CARGS((char *question, char *button1Name, char *button2Name));
  1239. SUIT_PROTOTYPE Reply          SUIT_inform CARGS((char *info));
  1240. SUIT_PROTOTYPE Reply          SUIT_getString CARGS((char *message, char *defaultString, char answer[], int answerLength));
  1241. #define                  SUIT_askYesNo(QUESTION) SUIT_ask (QUESTION, "Yes", "No")
  1242. #define                  SUIT_askOKCancel(QUESTION) ((SUIT_ask (QUESTION, "OK", "Cancel")==REPLY_YES)?REPLY_OK:REPLY_CANCEL)
  1243. #define                  SUIT_askYesNoCancel(QUESTION) SUIT_askWithCancel (QUESTION, "Yes", "No")
  1244.  
  1245.  
  1246. SUIT_PROTOTYPE SUIT_object    SUIT_createRadioButtons CARGS((char *name, SUIT_callbackFunctionPtr function));
  1247. SUIT_PROTOTYPE void          SUIT_addButtonToRadioButtons CARGS((SUIT_object object, char *name));
  1248. SUIT_PROTOTYPE void          SUIT_pressThisRadioButton CARGS((SUIT_object object, char *buttonName));
  1249.  
  1250. SUIT_PROTOTYPE SUIT_object    SUIT_createScrollableList CARGS((char *name, void (*callback) (SUIT_object object)));
  1251. SUIT_PROTOTYPE void          SUIT_resetScrollableListToTop CARGS((SUIT_object scroller));
  1252.  
  1253. SUIT_PROTOTYPE SUIT_object    SUIT_createPullDownMenu CARGS((char *name));
  1254. SUIT_PROTOTYPE SUIT_object    SUIT_createVerticalMenu CARGS((char *name));
  1255. SUIT_PROTOTYPE SUIT_object    SUIT_addToMenu CARGS((SUIT_object object, char *name, void (*callback) (SUIT_object object)));
  1256. SUIT_PROTOTYPE SUIT_object    SUIT_addToMenuWithHotKey CARGS((SUIT_object object, char *name,
  1257.                                   void (*callback) (SUIT_object), char *hotkey));
  1258. SUIT_PROTOTYPE SUIT_object    SUIT_createMenuBar CARGS((char *name));
  1259.  
  1260. SUIT_PROTOTYPE char *          SUIT_textOfFile CARGS((char *fileName));
  1261.  
  1262. SUIT_PROTOTYPE void          SUIT_initPropertyEditor CARGS((void));
  1263.  
  1264.  
  1265. SUIT_PROTOTYPE SUIT_object    SUIT_createClock CARGS((char *name));
  1266. SUIT_PROTOTYPE SUIT_object    SUIT_createPolygon CARGS((char *name));
  1267. SUIT_PROTOTYPE SUIT_object    SUIT_createBouncingBall CARGS((char *name));
  1268.  
  1269. SUIT_PROTOTYPE SUIT_object    SUIT_createBulletinBoard CARGS((char *name));
  1270. SUIT_PROTOTYPE SUIT_object    SUIT_createBulletinBoardWithClass CARGS((char *name, char *className));
  1271.  
  1272. SUIT_PROTOTYPE void          SUIT_centerObjectOnScreen CARGS((SUIT_object object));
  1273.  
  1274. SUIT_PROTOTYPE point          SUIT_mapRelativeLocationToScreen CARGS((SUIT_object object, point pt));
  1275. SUIT_PROTOTYPE point          SUIT_mapScreenToRelativeLocation CARGS((SUIT_object object, point pt));
  1276.  
  1277. SUIT_PROTOTYPE rectangle      SUIT_mapViewportToScreen CARGS((SUIT_object object, SUIT_viewport viewport));
  1278. SUIT_PROTOTYPE SUIT_viewport  SUIT_mapScreenToViewport CARGS((SUIT_object object, rectangle screen));
  1279. SUIT_PROTOTYPE SUIT_viewport  SUIT_mapToParent CARGS((SUIT_object object, double x1, double y1, double x2, double y2));
  1280. SUIT_PROTOTYPE void          SUIT_centerInParent CARGS((SUIT_object object, double centerX, double centerY));
  1281.  
  1282. SUIT_PROTOTYPE char *          SUIT_getHelp CARGS((char *className, char *propertyName));
  1283. SUIT_PROTOTYPE void          SUIT_registerHelp CARGS((char *className, char *propertyName, char *helpText));
  1284.  
  1285. SUIT_PROTOTYPE SUIT_object    SUIT_createTextBox CARGS((char *name, char *text));
  1286. SUIT_PROTOTYPE void          SUIT_optimizeSizeForText CARGS((SUIT_object object, int width));
  1287. SUIT_PROTOTYPE void          SUIT_redrawLocalSection CARGS((SUIT_object object, rectangle rect));
  1288. SUIT_PROTOTYPE SUIT_object    SUIT_createStacker CARGS((char *name));
  1289.  
  1290. SUIT_PROTOTYPE GP_rectangle   SUIT_defWindow CARGS((double x1, double y1, double x2, double y2));
  1291. SUIT_PROTOTYPE SUIT_viewport  SUIT_defViewport CARGS((int x1, int y1, int x2, int y2));
  1292. SUIT_PROTOTYPE void          SUIT_forceOnScreen CARGS((SUIT_object object));
  1293. SUIT_PROTOTYPE void          SUIT_getObjectSize CARGS((SUIT_object object, int *width, int *height));
  1294.  
  1295. SUIT_PROTOTYPE SUIT_object    SUIT_createTextEditorWithScrollBar CARGS((char *name, void (*callback)(SUIT_object object));
  1296. SUIT_PROTOTYPE void          SUIT_sendToEditor CARGS((SUIT_object object, char *command));
  1297. SUIT_PROTOTYPE void          SUIT_highlightBlockInTextEditor (SUIT_object object, int beginPosition, int endPosition));
  1298.  
  1299. SUIT_PROTOTYPE void          SUIT_iterateOverAllProperties CARGS((SUIT_propertyCallback callback));
  1300.  
  1301. SUIT_PROTOTYPE SUIT_object    SUIT_createObjectByClass CARGS((char *ObjectName, char *ClassName));
  1302. SUIT_PROTOTYPE boolean          SUIT_isAncestor CARGS((SUIT_object parent, SUIT_object child));
  1303.  
  1304. SUIT_PROTOTYPE char *          SUIT_relativeName CARGS((SUIT_object object, char *name));
  1305. SUIT_PROTOTYPE SUIT_object    SUIT_createFileBrowser CARGS((char *name, char *startDirectory, char *label,
  1306.                                 char *typeInBoxLabel, SUIT_callbackFunctionPtr callback));
  1307. SUIT_PROTOTYPE SUIT_object    SUIT_createFileBrowserDialogBox CARGS((char *name, char *startDir, char *label,
  1308.                                      char *typeInBoxLabel));
  1309. SUIT_PROTOTYPE char *          SUIT_askForFileName CARGS((char *startDirectory, char *label, char *typeInBoxLabel));
  1310. SUIT_PROTOTYPE SUIT_object    SUIT_copyObject CARGS((SUIT_object obj, char *newName));
  1311.  
  1312. SUIT_PROTOTYPE void          SUIT_makeAssertionsFatal CARGS((boolean fatal));
  1313.  
  1314. SUIT_PROTOTYPE SUIT_object    SUIT_createImage CARGS((char *, int, int, int, int ,unsigned char *));
  1315.  
  1316. #endif /* BASESUIT_INCLUDED */
  1317.